<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css">
<meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<link rel="Start" href="index.html">
<link rel="Up" href="index.html">
<link title="Index of values" rel=Appendix href="index_values.html">
<link title="Index of modules" rel=Appendix href="index_modules.html">
<link title="Conteur" rel="Chapter" href="Conteur.html"><title>Conteur</title>
</head>
<body>
<div class="navbar">&nbsp;<a href="index.html">Up</a>
&nbsp;</div>
<center><h1>Module <a href="type_Conteur.html">Conteur</a></h1></center>
<br>
<pre><span class="keyword">module</span> Conteur: <code class="code">sig</code> <a href="Conteur.html">..</a> <code class="code">end</code></pre>Ce fichier est le coeur du programme car il représente le maître du jeu qui distribue les rôles, gère les parties et narre l'histoire.
Il peut également servir d'arbitre.
Lui seul connaît les identités des joueurs et peut les appeler pour les informer ou leur poser des questions. Pour celà, il est compilé en dernier afin de ne pas pouvoir être appelé par les autres joueurs (il est le seul à avoir unpointeur vers tous les joueurs<br>
<hr width="100%">
<pre><span class="keyword">val</span> <a name="VALc_nbjoueurs"></a><a href="code_VALConteur.c_nbjoueurs.html">c_nbjoueurs</a> : <code class="type">int</code></pre><div class="info">
Définition du nombre de joueurs<br>
</div>
<pre><span class="keyword">val</span> <a name="VALc_whoswho"></a><a href="code_VALConteur.c_whoswho.html">c_whoswho</a> : <code class="type">Definition.perso array</code></pre><div class="info">
Tableau contenant un la personnalité de chaque joueur<br>
</div>
<pre><span class="keyword">val</span> <a name="VALc_potions"></a><a href="code_VALConteur.c_potions.html">c_potions</a> : <code class="type">int array</code></pre><div class="info">
Contient les potions disponibles pour la sorcière
<code class="code">| potion de vie; poison|</code><br>
</div>
<pre><span class="keyword">val</span> <a name="VALid_end"></a><a href="code_VALConteur.id_end.html">id_end</a> : <code class="type">int Pervasives.ref</code></pre><div class="info">
Contient l'identifiant du type de fin de partie
-1 correspond à une valeur par défaut tant que ce n'est pas la fin de la partie<br>
</div>
<pre><span class="keyword">val</span> <a name="VALid_vote"></a><a href="code_VALConteur.id_vote.html">id_vote</a> : <code class="type">int Pervasives.ref</code></pre><div class="info">
Indique le numéro du vote afin de pouvoir s'y reperer<br>
</div>
<pre><span class="keyword">val</span> <a name="VALc_is_dead"></a><a href="code_VALConteur.c_is_dead.html">c_is_dead</a> : <code class="type">int -> bool</code></pre><div class="info">
Fonction indiquant si, selon le conteur la personne est morte ou non<br>
</div>
<pre><span class="keyword">val</span> <a name="VALc_is_LG"></a><a href="code_VALConteur.c_is_LG.html">c_is_LG</a> : <code class="type">int -> bool</code></pre><div class="info">
Fonction indiquant si , selon le conteur, la personne est un Loup-Garou vivant ou non<br>
</div>
<br>
Fonctions assurant les conversions des joueurs en objets de classe Definition.joueur,
cette conversion permet la coercion, cest à dire d'indiquer au vérificateur de type d'ocaml que telle sous-classe de joueur sera consideree exclusivement comme un joueur tout court<br>
<pre><span class="keyword">val</span> <a name="VALreliable2j"></a><a href="code_VALConteur.reliable2j.html">reliable2j</a> : <code class="type">Joueur2.reliable -> Definition.joueur</code></pre><div class="info">
</div>
<pre><span class="keyword">val</span> <a name="VALconf2j"></a><a href="code_VALConteur.conf2j.html">conf2j</a> : <code class="type">Joueur3.confiant -> Definition.joueur</code></pre><pre><span class="keyword">val</span> <a name="VALjdb"></a><a href="code_VALConteur.jdb.html">jdb</a> : <code class="type">Joueur.joueur_de_base -> Definition.joueur</code></pre><pre><span class="keyword">val</span> <a name="VALhumain2j"></a><a href="code_VALConteur.humain2j.html">humain2j</a> : <code class="type">Joueur4.humain -> Definition.joueur</code></pre><pre><span class="keyword">val</span> <a name="VALjoueurs"></a><a href="code_VALConteur.joueurs.html">joueurs</a> : <code class="type">Definition.joueur array</code></pre><div class="info">
Tableau contenant un pointeur vers chaque joueur,
il est ici initialisé avec des joueurs de type confiant<br>
</div>
<pre><span class="keyword">val</span> <a name="VALmorgue"></a><a href="code_VALConteur.morgue.html">morgue</a> : <code class="type">int Stack.t</code></pre><div class="info">
Pile contenant les morts qui ne sont pas encore enregistrés comme morts mais qui ont étés tués.
Il s'agit par exemple de la victime des Loup-Garous ou de la sorcière<br>
</div>
<pre><span class="keyword">val</span> <a name="VALordre"></a><a href="code_VALConteur.ordre.html">ordre</a> : <code class="type">int array</code></pre><div class="info">
Tableau contenant un ordre aléatoire pour affecter une personnalité au hasard à chacun des joueurs
Ce tableau est utilisé lorsque l'on veut parcourir les joueurs afin de ne pas permettre l'identification de la personnalité d'un joueur en regardant le moment où telle personnalité est appelée cf issue14<br>
</div>
<br>
-----------------------------------------------------------------------------------------------<br>
<br>
Début des fonctions définissant les phases de la partie<br>
<pre><span class="keyword">val</span> <a name="VALinitialisation"></a><a href="code_VALConteur.initialisation.html">initialisation</a> : <code class="type">bool -> unit</code></pre><div class="info">
Initialisation du jeu: distribue les roles, demande a chaque joueur de s'initialiser en consequence<br>
</div>
<pre><span class="keyword">val</span> <a name="VALis_it_the_end"></a><a href="code_VALConteur.is_it_the_end.html">is_it_the_end</a> : <code class="type">unit -> bool</code></pre><div class="info">
Fonction testant si la partie doit se terminer<br>
</div>
<pre><span class="keyword">val</span> <a name="VALepilogue"></a><a href="code_VALConteur.epilogue.html">epilogue</a> : <code class="type">unit -> unit</code></pre><div class="info">
Fonction gèrant la fin du jeu: affiche les gagants, le rôle de chacun...<br>
</div>
<pre><span class="keyword">val</span> <a name="VALnuit"></a><a href="code_VALConteur.nuit.html">nuit</a> : <code class="type">unit -> unit</code></pre><div class="info">
Fonction gérant la nuit: ordre des perso à faire jouer, actions de chacun<br>
</div>
<pre><span class="keyword">val</span> <a name="VALpetit_matin"></a><a href="code_VALConteur.petit_matin.html">petit_matin</a> : <code class="type">unit -> unit</code></pre><div class="info">
Fonction gérant le lever du soleil (et oui c'est compliqué !) c'est à dire annoncer les morts et officialiser les décès<br>
</div>
<pre><span class="keyword">val</span> <a name="VALjour"></a><a href="code_VALConteur.jour.html">jour</a> : <code class="type">unit -> unit</code></pre><div class="info">
Fonction gérant le jour: mort des personnages, action specifique, pendaison publique.../<br>
</div>
<pre><span class="keyword">val</span> <a name="VALhumain"></a><a href="code_VALConteur.humain.html">humain</a> : <code class="type">bool Pervasives.ref</code></pre></body></html>